package com.baizhi.mapx;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

/**
 * 投票统计
 * <p>
 * 周末老师组织同学去旅游，有四个备选旅游地
 * A:   陶然亭公园
 * B：   故宫天安门
 * C:    八达岭长城
 * D:    圆明园
 * <p>
 * 参与投票的学生人数100人，分别统计选 A  B C  D 的各多少人
 * <p>
 * 100 人投票，分别投 ABCD ，随机投票
 * <p>
 * A:32    陶然亭公园：32
 * B:24
 * C:18
 */
public class MapTest01 {
    public static void main(String[] args) {
//        Map<Character, String> addr = new HashMap<>();
//        addr.put('A', "陶然亭公园");
//        addr.put('B', "故宫天安门");
//        addr.put('C', "八达岭长城");
//        addr.put('D', "圆明园");

        //拼接一个长度为100的字符串表示100个选胜选择的结果
        String[] selects = {"A", "B", "C", "D"};
        StringBuilder sb = new StringBuilder(); //空字符串

        for (int i = 0; i < 100; i++) {
            Random ran = new Random();
            int index = ran.nextInt(selects.length);
            String result = selects[index];  // A，B，C，D
            sb.append(result); //字符串拼接
        }
        //System.out.println(sb);

        //定义一个Map集合统计投票结果
        Map<Character, Integer> map = new HashMap<>();

        //遍历学生投票的100个结果
        for (int i = 0; i < sb.length(); i++) {
            char c = sb.charAt(i); //提取 ABCD
            //把ABCD作为key存入map中
            if (map.containsKey(c)) { //判断Map中是否有ABCD，如果有，不存放，value+1  如果没有存放，Value+1
                //map中包含指定key，让value+1(获取value + 1)
                int value = map.get(c); //获取目前投票数
                map.put(c, value + 1);
            } else {
                //不包含 第一次被选，把key 和 value存入map
                map.put(c, 1);
            }
        }

        System.out.println(map);
//        //遍历addr集合
//        Set<Character> add = addr.keySet();
//        for (char s : add) {
//            String address = addr.get(s); //旅游地址
//            //s就是ABCD，s是addr集合的key ,也是map集合的key
//            Integer num = map.get(s); //票数
//            System.out.println(address + ":" +num);
//
//        }


    }
}
